package com.ys.nms.module.business.libreApi.devices.req;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

/**
 * 设备添加请求
 */
@Data
public class DeviceAddRequest {
    //IP地址 必填
    private String hostname;
    //snmp版本 非必填 数据库默认是 v2c
    @JSONField(name = "snmpver")
    @JsonProperty("snmpver")
    private String snmpver;

    // 显式定义 getter/setter，并通过 @JsonProperty 指定 JSON 字段名
    @JSONField(name = "snmpver")
    public String getSnmpver() {
        return snmpver;
    }

    @JSONField(name = "snmpver")
    public void setSnmpver(String snmpver) {
        this.snmpver = snmpver;
    }

    //识别端口的方法  非必填 ifIndex（默认1）、ifName、ifDescr、ifAlias
    @JSONField(name = "port_association_mode")
    private Integer portAssociationMode;

    //如果 SNMP 检查失败，请将设备添加为 ping only 而不是失败
    private String ping_fallback;

    //SNMP v1 或 v2c 凭据：SNMP v1 或 v2c 必需。
    private String community;

    //端口 数据库默认是161
    private Integer port ;
    //传输协议 数据库默认是udp
    private String transport ;


    //0为不强制添加 跳过所有检查，需要凭据。将给定的设备直接添加到数据库中。
    private Integer force_add ;

    //是否启用snmp，0为启用，其他为禁用
    @JSONField(name = "snmp_disable")
    private Integer snmpDisable ;



    //0为启用 其他为禁用
    private Integer disabled ;

    //SNMP v3 凭据：
    //
    //身份验证级别 authlevel：SNMP authlevel（noAuthNoPriv、authNoPriv、authPriv）。
    //enum('noAuthNoPriv','authNoPriv','authPriv')
    private String authlevel;
    //authname：SNMP 身份验证用户名
    private String authname;
    //authpass：SNMP 身份验证密码
    private String authpass;
    //authalgo：SNMP 身份验证算法（MD5、SHA）（如果您的服务器支持，则为 SHA-224、SHA-256、SHA-384、SHA-512）
    private String authalgo;
    //cryptopass：SNMP 加密密码
    private String cryptopass;
    //cryptoalgo：SNMP 加密算法（AES、DES）
    private String cryptoalg;
    //仅适用于 ICMP：
    //
    //snmp_disable：仅对 ICMP 设置为 true。禁用 SNMP 检查和轮询。
    //os：设备的作系统简称（默认为 ping）。
    //sysName：设备的 sysName。
    private String sysName;
    //hardware：设备硬件。

    //设备硬件
    private String hardware;

}